package com.hustbaidu.hustmap;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class PlaceManager {
	private static HashMap<Integer, PlaceType> placeTypeMap = new HashMap<Integer, PlaceType>();
	private static List<PlaceInfo> placeInfoList = new ArrayList<PlaceInfo>();
	
	/**
	 * 根据用户点击的地图位置来获取地点信息
	 * @param x 点击的地图X坐标
	 * @param y 点击的地图Y坐标
	 * @return 如果点击位置有对应地点则返回地点对象，否则返回null
	 * */
	public static PlaceInfo getPlaceByTouchPosition(int x, int y){

		PlaceInfo place = null;
		for(int i = 0; i < placeInfoList.size(); i++){
			place = placeInfoList.get(i);
			if(place.isBeTouched(x, y)){
				return place;
			}
		}
		
		return null;
	}
	
	/**
	 * 根据用户输入的地点名称来获取地点信息
	 * @param name 用户输入的地点名称
	 * @return 如果有同名的地点则返回地点对象，否则返回null
	 * */
	public static PlaceInfo getPlaceByName(String name){
		PlaceInfo place = null;
		for(int i = 0; i < placeInfoList.size(); i++){
			place = placeInfoList.get(i);
			if(place.getPlaceName().equals(name)){
				return place;
			}
		}
		
		return null;
	}
	
	public static PlaceType getTypeByPlace(PlaceInfo place){
//		if(placeTypeMap == null){
//			System.out.println("placeTypeMap is null");
//		}
//		if(place == null){
//			System.out.println("place is null");
//		}
		return placeTypeMap.get(place.getPlaceType());
	}

	/**
	 * 添加一个地点类型对象
	 * @param placeType 要添加的地点类型对象
	 * */
	public static void addPlaceType(PlaceType placeType){
		placeTypeMap.put(placeType.getTypeId(), placeType);
	}
	
	/**
	 * 添加一个地点对象
	 * @param placeInfo 要添加的地点对象
	 * */
	public static void addPlaceInfo(PlaceInfo placeInfo){
		placeInfoList.add(placeInfo.getId(), placeInfo);
	}
}
